home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CIS-FC11.ZIP / FCHAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-08-28  |  14KB  |  732 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN002
  20.     Boolean  BOOLEAN003
  21.     Boolean  BOOLEAN004
  22.     Boolean  BOOLEAN005
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     Integer  INTEGER014
  36.     Integer  INTEGER015
  37.     Integer  INTEGER016
  38.     Integer  INTEGER017
  39.     Integer  INTEGER018
  40.     Integer  INTEGER019
  41.     String   STRING002
  42.     String   STRING003
  43.     String   STRING004
  44.     String   STRING005
  45.     String   STRING006
  46.     String   STRING007
  47.     String   STRING008
  48.     String   STRING009
  49.     String   STRING010
  50.     String   STRING011
  51.     String   STRING012
  52.     String   STRING013
  53.     String   STRING014
  54.     String   STRING015
  55.     String   STRING016
  56.     String   STRING017
  57.     String   STRING018
  58.     String   STRING019
  59.     String   STRING020
  60.     String   STRING021
  61.     String   STRING022
  62.     String   STRING023
  63.     Declare  Function FUNCTION001(String STRING001, Boolean BOOLEAN001) Integer
  64.     Declare  Function FUNCTION002(Integer INTEGER001) Integer
  65.  
  66. ;------------------------------------------------------------------------------
  67.  
  68.     Goto LABEL004
  69.     End
  70.  
  71. ;------------------------------------------------------------------------------
  72.  
  73.     Function FUNCTION001(String STRING001, Boolean BOOLEAN001) Integer
  74.  
  75.     Int      INT001
  76.     Integer  INTEGER001
  77.  
  78.     If (BOOLEAN001 == 1) Goto LABEL003
  79.     INT001 = 0
  80.     STRING001 = "@X8C" + Chr(60) + Chr(85) + Chr(110) + Chr(114) + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(101) + Chr(100) + Chr(62) + "@X07"
  81.     :LABEL001
  82.     Eval FUNCTION002(INT001)
  83.     INT001 = INT001 + 1
  84.     If (INT001 > 57) Goto LABEL002
  85.     AnsiPos INT001, 1
  86.     Print STRING001
  87.     Delay 7
  88.     Goto LABEL001
  89.     :LABEL002
  90.     AnsiPos 1, 1
  91.     Print "@X0F■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  92.     Delay 5
  93.     AnsiPos 1, 1
  94.     Print "@X0C■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  95.     Delay 5
  96.     AnsiPos 1, 1
  97.     Print "@X04■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  98.     Delay 5
  99.     AnsiPos 1, 1
  100.     Print "@X09■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  101.     Delay 5
  102.     AnsiPos 1, 1
  103.     Print "@X0F@X01■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  104.     Delay 5
  105.     AnsiPos 1, 1
  106.     Print "@X0F■■■@X0C■■■@X04■■■@X09■■■@X01■■■@X0F■■■@X0C■■■@X04■■■@X09■■■@X01■■■@X0F■■■@X0C■■■@X04■■■@X09■■■@X01■■■@X0F■■■@X0C■■■@X04■■■@X09■■■@X01■■■@X0F■■■@X0C■■■@X04■■■@X09■■■@X01■■■@X0F■"
  107.     Delay 5
  108.     AnsiPos 64, 1
  109.     Print STRING001
  110.     Delay 5
  111.     :LABEL003
  112.  
  113.     EndFunc
  114.  
  115.  
  116. ;------------------------------------------------------------------------------
  117.  
  118.     Function FUNCTION002(Integer INTEGER001) Integer
  119.  
  120.     Boolean  BOOLEAN002
  121.  
  122.     AnsiPos INTEGER001, 1
  123.     Print " "
  124.  
  125.     EndFunc
  126.  
  127.     :LABEL004
  128.     INTEGER018 = 1
  129.     INTEGER019 = 1
  130.     STRING021 = PPEPath() + "FCHAT.CNF"
  131.     STRING022 = ReadLine(STRING021, 7)
  132.     For INTEGER018 = Lower(ReadLine(PCBDat(), 2) + Lower(ReadLine(PCBDat(), 94))) To Len(STRING023) Step 5
  133.         INTEGER019 = Left(INTEGER019 * Asc(Mid(STRING023, INTEGER018, 1)), 6)
  134.     Next
  135.     If (INTEGER019 == STRING022) Goto LABEL005
  136.     BOOLEAN005 = 0
  137.     Goto LABEL006
  138.     :LABEL005
  139.     BOOLEAN005 = 1
  140.     :LABEL006
  141.     If (BOOLEAN005 == 0) Then
  142.         Eval FUNCTION001("TEMP", 0)
  143.     Endif
  144.     SaveScrn
  145.     GetUser
  146.     PageOff
  147.     STRING007 = Chr(86) + Chr(105) + Chr(71) + Chr(105) + Chr(108) + Chr(97) + Chr(110) + Chr(116) + Chr(101)
  148.     STRING006 = "@X07─@X08──────────────────── ∙ ·    · ∙ ──@X07──@X0F───@X07──@X08── ∙ ·    · ∙ ────────────────────@X07─"
  149.     STRING012 = ReadLine(PPEPath() + "fchat.cnf", 1)
  150.     STRING013 = ReadLine(PPEPath() + "fchat.cnf", 2)
  151.     STRING014 = ReadLine(PPEPath() + "fchat.cnf", 3)
  152.     Sound 0
  153.     STRING017 = "@X08@X07@X0F"
  154.     STRING018 = ""
  155.     INTEGER008 = Time()
  156.     INTEGER015 = 4
  157.     INTEGER016 = 12
  158.     STRING019 = ""
  159.     INTEGER011 = 1
  160.     INTEGER012 = ReadLine(PPEPath() + "fchat.cnf", 7)
  161.     STRING020 = Lower(ReadLine(PCBDat(), 2)) + Lower(ReadLine(PCBDat(), 94))
  162.     INTEGER006 = 1
  163.     BOOLEAN004 = 1
  164.     If (Exist(PPEPath() + "chatlog." + String(PcbNode()))) Then
  165.         FAppend 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
  166.         FPutLn 1, STRING006
  167.     Else
  168.         FCreate 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
  169.     Endif
  170.     FPutLn 1, "Chat initiated with " + U_Name() + " on " + String(Date()) + " at " + String(Time())
  171.     FPutLn 1
  172.     Cls
  173.     For INTEGER006 = 1 To 9 Step 4
  174.         AnsiPos 1, 12
  175.     Next
  176.     :LABEL007
  177.     Gosub LABEL022
  178.     INTEGER002 = 1
  179.     INTEGER003 = 3
  180.     INTEGER004 = 1
  181.     INTEGER005 = 13
  182.     STRING008 = ""
  183.     STRING009 = ""
  184.     BOOLEAN002 = 0
  185.     If (Lower(ReadLine(PPEPath() + "fchat.cnf", 5)) == "top") Then
  186.         STRING015 = ""
  187.         STRING016 = ""
  188.     Else
  189.         STRING016 = ""
  190.         STRING015 = ""
  191.     Endif
  192.     Print "@POFF@" + STRING014
  193.     Cls
  194.     If ((!Exist(PPEPath() + "schat.top") || !Exist(PPEPath() + "schat.bot")) || !Exist(PPEPath() + "schat.mid")) Then
  195.         PrintLn "@X0F┌" + STRING006 + "@X07┐"
  196.         Print "@X0F└@X07──@X08─@X07─@X08── ∙ · @X08(@X0FCtrl@X08)@X07 + @X08(@X0FT@X08)@X07oggle Fade@X08 .. @X08(@X0FR@X08)@X07edraw Screen@X08 .. (@X0FN@X08)@X07ew Fade @X08· ∙ ──@X07─@X08─@X07──@X0F┘"
  197.         Newlines 10
  198.         Print "@X0F─" + STRING006 + "@X0F─"
  199.         Newlines 10
  200.         PrintLn STRING012 + "@X0F┌@X07──@X08─@X07─@X08───────────── ∙ · @X0F F@X0Ca@X04de @X0FC@X0Ch@X04at @X0FV@X0Ce@X04r@X08. @X0F1@X0C.@X040  B@X0Cy@X0F: @X04S@X0Ce@X0FL@X07φ@X0FC@X0Ci@X04S@X08  · ∙ ─────────────@X07─@X08─@X07──@X0F┐"
  201.         Print "@X07└" + STRING006 + "@X0F┘"
  202.         Goto LABEL008
  203.     Endif
  204.     :LABEL008
  205.     AnsiPos 6, 12
  206.     Print STRING014 + " " + STRING015 + " " + STRING013 + ReadLine(PCBDat(), 2) + STRING014 + " " + STRING015 + " "
  207.     AnsiPos 69 - Len(U_Name()), 12
  208.     Print STRING014 + " " + STRING016 + " " + STRING013
  209.     Tokenize U_Name()
  210.     While (TokCount() > 0) Do
  211.         STRING004 = GetToken()
  212.         Print Left(STRING004, 1) + Lower(Right(STRING004, Len(STRING004) - 1)) + " "
  213.     EndWhile
  214.     Print STRING014 + STRING016 + " "
  215.     AnsiPos 32, 12
  216.     If (!BOOLEAN004) Print STRING019 + STRING014
  217.     AnsiPos INTEGER002, INTEGER003
  218.     If (Lower(ReadLine(PPEPath() + "fchat.cnf", 5)) == "top") Then
  219.         :LABEL009
  220.         If (BOOLEAN003) Goto LABEL010
  221.         STRING003 = KInkey()
  222.         STRING002 = MInkey()
  223.         If (STRING003 <> "") Gosub LABEL013
  224.         If (STRING002 <> "") Gosub LABEL016
  225.         If (STRING003 == Chr(14)) Gosub LABEL023
  226.         If (STRING002 == Chr(14)) Gosub LABEL023
  227.         Goto LABEL009
  228.         :LABEL010
  229.     Else
  230.         :LABEL011
  231.         If (BOOLEAN003) Goto LABEL012
  232.         STRING002 = KInkey()
  233.         STRING003 = MInkey()
  234.         If (STRING003 <> "") Gosub LABEL013
  235.         If (STRING002 <> "") Gosub LABEL016
  236.         If (STRING003 == Chr(14)) Gosub LABEL023
  237.         If (STRING002 == Chr(14)) Gosub LABEL023
  238.         Goto LABEL011
  239.     Endif
  240.     :LABEL012
  241.     If (STRING008 <> "") FPutLn 1, STRING008
  242.     If (STRING009 <> "") FPutLn 1, "-" + STRING009
  243.     FClose 1
  244.     Cls
  245.     For INTEGER006 = 9 To 1 Step -4
  246.         AnsiPos 1, 12
  247.     Next
  248.     RestScrn
  249.     If (Lower(ReadLine(PPEPath() + "fchat.cnf", 4)) <> "yes") Delete PPEPath() + "chatlog." + String(PcbNode())
  250.     If (Lower(ReadLine(PPEPath() + "fchat.cnf", 6)) == "yes") Then
  251.         INTEGER009 = Time()
  252.         INTEGER010 = (INTEGER009 - INTEGER008) / 60
  253.         If (INTEGER010 < 0) INTEGER010 = INTEGER010 + 86400
  254.         AdjTime INTEGER010
  255.     Endif
  256.     KbdStuff Chr(27)
  257.     End
  258.     :LABEL013
  259.     If (Asc(STRING003) < 32) Then
  260.         Select Case (STRING003)
  261.             Case Chr(20)
  262.                 If (STRING003 == Chr(14)) Gosub LABEL023
  263.                 BOOLEAN002 = !BOOLEAN002
  264.                 Print STRING014
  265.             Case Chr(7)
  266.                 If (STRING003 == Chr(14)) Gosub LABEL023
  267.                 Beep
  268.             Case Chr(8), 1
  269.                 STRING008 = Left(STRING008, Len(STRING008) - 1)
  270.                 AnsiPos INTEGER002, INTEGER003
  271.                 Print Chr(8) + " " + Chr(8)
  272.                 Dec INTEGER002
  273.             Case Chr(13)
  274.                 INTEGER002 = 1
  275.                 Inc INTEGER003
  276.                 If (INTEGER003 > 11) Then
  277.                     Gosub LABEL019
  278.                     INTEGER002 = 1
  279.                     If (STRING008 <> "") Inc INTEGER003
  280.                 Endif
  281.                 AnsiPos INTEGER002, INTEGER003
  282.                 If (STRING008 <> "") FPutLn 1, STRING008
  283.                 STRING008 = ""
  284.                 If (STRING003 == Chr(18)) Then
  285.                     Goto LABEL007
  286.                 Endif
  287.             Case Chr(4), "top"
  288.                 Gosub LABEL021
  289.             Case Chr(27)
  290.                 BOOLEAN003 = 1
  291.         End Select
  292.     Else
  293.         STRING008 = STRING008 + STRING003
  294.         AnsiPos INTEGER002, INTEGER003
  295.         INTEGER013 = INTEGER013 + 1
  296.         If (INTEGER013 >= 7) INTEGER013 = 1
  297.         If (INTEGER013 == 1) INTEGER014 = INTEGER015
  298.         If (INTEGER013 == 2) INTEGER014 = INTEGER016
  299.         If (INTEGER013 >= 3) INTEGER014 = 15
  300.         If (INTEGER013 == 5) INTEGER014 = INTEGER016
  301.         If (INTEGER013 == 6) INTEGER014 = INTEGER015
  302.         If (BOOLEAN002) Color INTEGER014
  303.         If (STRING002 == Chr(14)) Gosub LABEL023
  304.         If (STRING003 == Chr(14)) Gosub LABEL023
  305.         Print STRING003
  306.         Inc INTEGER002
  307.         If (INTEGER002 == 80) Then
  308.             INTEGER007 = 79
  309.             While (INTEGER007 > 0) Do
  310.                 If (Mid(STRING008, INTEGER007, 1) == " ") Then
  311.                     INTEGER002 = 1
  312.                     If (INTEGER003 == 11) Then
  313.                         Gosub LABEL019
  314.                         INTEGER002 = 1
  315.                         Inc INTEGER003
  316.                         Goto LABEL014
  317.                     Endif
  318.                     Inc INTEGER003
  319.                     :LABEL014
  320.                     AnsiPos INTEGER007, INTEGER003 - 1
  321.                     ClrEol
  322.                     AnsiPos INTEGER002, INTEGER003
  323.                     STRING010 = Right(STRING008, 79 - INTEGER007)
  324.                     FPutLn 1, Left(STRING008, INTEGER007)
  325.                     If (BOOLEAN002) Then
  326.                         For INTEGER006 = 1 To Len(STRING010)
  327.                             INTEGER013 = INTEGER013 + 1
  328.                             If (INTEGER013 >= 7) INTEGER013 = 1
  329.                             If (INTEGER013 == 1) INTEGER014 = INTEGER015
  330.                             If (INTEGER013 == 2) INTEGER014 = INTEGER016
  331.                             If (INTEGER013 >= 3) INTEGER014 = 15
  332.                             If (INTEGER013 == 5) INTEGER014 = INTEGER016
  333.                             If (INTEGER013 == 6) INTEGER014 = INTEGER015
  334.                             Color INTEGER014
  335.                             Print Mid(STRING010, INTEGER006, 1)
  336.                         Next
  337.                         Goto LABEL015
  338.                     Endif
  339.                     Print STRING010
  340.                     :LABEL015
  341.                     INTEGER002 = 80 - INTEGER007
  342.                     INTEGER007 = 0
  343.                     Continue
  344.                 Endif
  345.                 Dec INTEGER007
  346.                 If (INTEGER007 == 0) Then
  347.                     INTEGER002 = 1
  348.                     Inc INTEGER003
  349.                     If (INTEGER003 > 11) Then
  350.                         Gosub LABEL019
  351.                         INTEGER002 = 1
  352.                         Inc INTEGER003
  353.                     Endif
  354.                     AnsiPos INTEGER002, INTEGER003
  355.                     STRING010 = ""
  356.                     FPutLn 1, STRING008
  357.                 Endif
  358.             EndWhile
  359.             STRING008 = STRING010
  360.         Endif
  361.     Endif
  362.     Return
  363.     :LABEL016
  364.     If (Asc(STRING002) < 32) Then
  365.         Select Case (STRING002)
  366.             Case Chr(20)
  367.                 If (STRING002 == Chr(14)) Gosub LABEL023
  368.                 BOOLEAN002 = !BOOLEAN002
  369.                 Print STRING014
  370.             Case Chr(7)
  371.                 If (STRING003 == Chr(14)) Gosub LABEL023
  372.                 Beep
  373.             Case Chr(8), 1
  374.                 STRING009 = Left(STRING009, Len(STRING009) - 1)
  375.                 AnsiPos INTEGER004, INTEGER005
  376.                 Print Chr(8) + " " + Chr(8)
  377.                 Dec INTEGER004
  378.             Case Chr(13)
  379.                 INTEGER004 = 1
  380.                 Inc INTEGER005
  381.                 If (INTEGER005 > 21) Then
  382.                     Gosub LABEL020
  383.                     INTEGER004 = 1
  384.                     If (STRING009 <> "") Inc INTEGER005
  385.                 Endif
  386.                 AnsiPos INTEGER004, INTEGER005
  387.                 If (STRING009 <> "") FPutLn 1, "-" + STRING009
  388.                 STRING009 = ""
  389.                 If (STRING002 == Chr(18)) Then
  390.                     Goto LABEL007
  391.                 Endif
  392.             Case Chr(4), "bottom"
  393.                 Gosub LABEL021
  394.             Case Chr(27)
  395.                 BOOLEAN003 = 1
  396.         End Select
  397.     Else
  398.         STRING009 = STRING009 + STRING002
  399.         AnsiPos INTEGER004, INTEGER005
  400.         INTEGER013 = INTEGER013 + 1
  401.         If (INTEGER013 >= 7) INTEGER013 = 1
  402.         If (INTEGER013 == 1) INTEGER014 = INTEGER015
  403.         If (INTEGER013 == 2) INTEGER014 = INTEGER016
  404.         If (INTEGER013 >= 3) INTEGER014 = 15
  405.         If (INTEGER013 == 5) INTEGER014 = INTEGER016
  406.         If (INTEGER013 == 6) INTEGER014 = INTEGER015
  407.         If (BOOLEAN002) Color INTEGER014
  408.         Print STRING002
  409.         Inc INTEGER004
  410.         If (INTEGER004 == 80) Then
  411.             INTEGER007 = 79
  412.             While (INTEGER007 > 0) Do
  413.                 If (Mid(STRING009, INTEGER007, 1) == " ") Then
  414.                     INTEGER004 = 1
  415.                     If (INTEGER005 == 21) Then
  416.                         Gosub LABEL020
  417.                         INTEGER004 = 1
  418.                         Inc INTEGER005
  419.                         Goto LABEL017
  420.                     Endif
  421.                     Inc INTEGER005
  422.                     :LABEL017
  423.                     AnsiPos INTEGER007, INTEGER005 - 1
  424.                     ClrEol
  425.                     AnsiPos INTEGER004, INTEGER005
  426.                     STRING011 = Right(STRING009, 79 - INTEGER007)
  427.                     FPutLn 1, "-" + Left(STRING009, INTEGER007)
  428.                     If (BOOLEAN002) Then
  429.                         For INTEGER006 = 1 To Len(STRING011)
  430.                             INTEGER013 = INTEGER013 + 1
  431.                             If (INTEGER013 >= 7) INTEGER013 = 1
  432.                             If (INTEGER013 == 1) INTEGER014 = INTEGER015
  433.                             If (INTEGER013 == 2) INTEGER014 = INTEGER016
  434.                             If (INTEGER013 >= 3) INTEGER014 = 15
  435.                             If (INTEGER013 == 5) INTEGER014 = INTEGER016
  436.                             If (INTEGER013 == 6) INTEGER014 = INTEGER015
  437.                             Color INTEGER014
  438.                             Print Mid(STRING011, INTEGER006, 1)
  439.                         Next
  440.                         Goto LABEL018
  441.                     Endif
  442.                     Print STRING011
  443.                     :LABEL018
  444.                     INTEGER004 = 80 - INTEGER007
  445.                     INTEGER007 = 0
  446.                     Continue
  447.                 Endif
  448.                 Dec INTEGER007
  449.                 If (INTEGER007 == 0) Then
  450.                     INTEGER004 = 1
  451.                     Inc INTEGER005
  452.                     If (INTEGER005 > 21) Then
  453.                         Gosub LABEL020
  454.                         INTEGER004 = 1
  455.                         Inc INTEGER005
  456.                     Endif
  457.                     AnsiPos INTEGER004, INTEGER005
  458.                     STRING011 = ""
  459.                     FPutLn 1, "-" + Left(STRING009, Len(STRING009) - 1)
  460.                 Endif
  461.             EndWhile
  462.             STRING009 = STRING011
  463.         Endif
  464.     Endif
  465.     Return
  466.     :LABEL019
  467.     Print STRING014
  468.     For INTEGER006 = 3 To 11
  469.         AnsiPos 1, INTEGER006
  470.         ClrEol
  471.     Next
  472.     AnsiPos 1, 3
  473.     If (BOOLEAN002) Then
  474.         For INTEGER006 = 1 To Len(STRING008)
  475.             INTEGER013 = INTEGER013 + 1
  476.             If (INTEGER013 >= 7) INTEGER013 = 1
  477.             If (INTEGER013 == 1) INTEGER014 = INTEGER015
  478.             If (INTEGER013 == 2) INTEGER014 = INTEGER016
  479.             If (INTEGER013 >= 3) INTEGER014 = 15
  480.             If (INTEGER013 == 5) INTEGER014 = INTEGER016
  481.             If (INTEGER013 == 6) INTEGER014 = INTEGER015
  482.             Color INTEGER014
  483.             Print Mid(STRING008, INTEGER006, 1)
  484.         Next
  485.     Else
  486.         Print STRING008
  487.     Endif
  488.     INTEGER002 = GetX()
  489.     INTEGER003 = GetY()
  490.     AnsiPos INTEGER002, INTEGER003
  491.     Return
  492.     :LABEL020
  493.     Print STRING014
  494.     For INTEGER006 = 13 To 21
  495.         AnsiPos 1, INTEGER006
  496.         ClrEol
  497.     Next
  498.     AnsiPos 1, 13
  499.     If (BOOLEAN002) Then
  500.         For INTEGER006 = 1 To Len(STRING009)
  501.             INTEGER013 = INTEGER013 + 1
  502.             If (INTEGER013 >= 7) INTEGER013 = 1
  503.             If (INTEGER013 == 1) INTEGER014 = INTEGER015
  504.             If (INTEGER013 == 2) INTEGER014 = INTEGER016
  505.             If (INTEGER013 >= 3) INTEGER014 = 15
  506.             If (INTEGER013 == 5) INTEGER014 = INTEGER016
  507.             If (INTEGER013 == 6) INTEGER014 = INTEGER015
  508.             Color INTEGER014
  509.             Print Mid(STRING009, INTEGER006, 1)
  510.         Next
  511.     Else
  512.         Print STRING009
  513.     Endif
  514.     INTEGER004 = GetX()
  515.     INTEGER005 = GetY()
  516.     AnsiPos INTEGER004, INTEGER005
  517.     Return
  518.     :LABEL021
  519.     AnsiPos 79, 23
  520.     SaveScrn
  521.     AnsiPos 11, 6
  522.     PrintLn STRING012 + "@X0F┌───@X07───@X08── ∙  ·                         ·  ∙ ──@X07───@X0F───┐"
  523.     AnsiPos 11, 7
  524.     PrintLn "@X08│" + STRING014 + "                                                   " + STRING012 + "@X08│"
  525.     AnsiPos 11, 8
  526.     PrintLn "@X0F└───@X07───@X08── ∙  ·                         ·  ∙ ──@X07───@X0F───┘"
  527.     AnsiPos 13, 7
  528.     Print STRING014 + "@X08Fi@X07l@X0Fe@X08:@X07 "
  529.     STRING004 = ""
  530.     STRING005 = ""
  531.     INTEGER006 = 0
  532.     While (STRING004 <> Chr(13)) Do
  533.         STRING004 = KInkey()
  534.         If (STRING004 <> Chr(13)) Then
  535.             If ((STRING004 == Chr(8)) && (INTEGER006 > 0)) Then
  536.                 Print Chr(8) + " " + Chr(8)
  537.                 Dec INTEGER006
  538.                 STRING005 = Left(STRING005, Len(STRING005) - 1)
  539.                 Continue
  540.             Endif
  541.             If ((Asc(STRING004) > 32) && (INTEGER006 < 50)) Then
  542.                 STRING005 = STRING005 + STRING004
  543.                 Print STRING004
  544.                 Inc INTEGER006
  545.             Endif
  546.         Endif
  547.     EndWhile
  548.     If (Exist(STRING005)) Then
  549.         Print "@CLS@@POFF@"
  550.         DispFile STRING005, 0
  551.         Newline
  552.         Print "@WAIT@"
  553.     Endif
  554.     RestScrn
  555.     AnsiPos INTEGER002, INTEGER003
  556.     Return
  557.     :LABEL022
  558.     AnsiPos 1, 12
  559.     Print "   @X08───                         @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                        ───"
  560.     AnsiPos 1, 12
  561.     Print "   @X08────                        @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                       ────   "
  562.     AnsiPos 1, 12
  563.     Print "   @X08──────                      @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                     ──────"
  564.     AnsiPos 1, 12
  565.     Print "   @X08────────                    @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                   ────────"
  566.     AnsiPos 1, 12
  567.     Print "   @X08──────────                  @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                 ──────────"
  568.     AnsiPos 1, 12
  569.     Print "   @X08────────────                @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08               ────────────"
  570.     AnsiPos 1, 12
  571.     Print "   @X08────────────────            @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08           ────────────────"
  572.     AnsiPos 1, 12
  573.     Print "   @X08────────────────────        @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08       ────────────────────"
  574.     AnsiPos 1, 12
  575.     Print "   @X08───────────────────────     @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08    ───────────────────────"
  576.     AnsiPos 1, 12
  577.     Print "   @X08─────────────────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08───────────────────────────"
  578.     AnsiPos 1, 12
  579.     Print "   @X08─────────────────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08───────────────────────────"
  580.     AnsiPos 1, 12
  581.     Print "   @X08   ──────────────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08────────────────────────   "
  582.     AnsiPos 1, 12
  583.     Print "   @X08    ─────────────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08───────────────────────    "
  584.     AnsiPos 1, 12
  585.     Print "   @X08       ──────────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08────────────────────       "
  586.     AnsiPos 1, 12
  587.     Print "   @X08          ───────────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08─────────────────          "
  588.     AnsiPos 1, 12
  589.     Print "                 ───────────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08─────────────              "
  590.     AnsiPos 1, 12
  591.     Print "                     ───────── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08─────────                  "
  592.     AnsiPos 1, 12
  593.     Print "                         ───── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08─────                      "
  594.     AnsiPos 1, 12
  595.     Print "                            ── @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08──                         "
  596.     AnsiPos 1, 12
  597.     Print "                               @X0FF@X0Ca@X04de @X0FC@X0Ch@X04at V@X0Ce@X0Fr 1@X0C.@X040 @X08                           "
  598.     Return
  599.     :LABEL023
  600.     INTEGER017 = INTEGER017 + 1
  601.     If (INTEGER017 == 5) INTEGER017 = 1
  602.     If (INTEGER017 == 1) Goto LABEL024
  603.     If (INTEGER017 == 2) Goto LABEL025
  604.     If (INTEGER017 == 3) Goto LABEL026
  605.     If (INTEGER017 == 4) Goto LABEL027
  606.     :LABEL024
  607.     INTEGER015 = 1
  608.     INTEGER016 = 9
  609.     Return
  610.     :LABEL025
  611.     INTEGER015 = 2
  612.     INTEGER016 = 10
  613.     Return
  614.     :LABEL026
  615.     INTEGER015 = 5
  616.     INTEGER016 = 13
  617.     Return
  618.     :LABEL027
  619.     INTEGER015 = 4
  620.     INTEGER016 = 12
  621.     Return
  622.  
  623. ;------------------------------------------------------------------------------
  624. ;
  625. ; Usage report (before postprocessing)
  626. ;
  627. ; ■ Statements used :
  628. ;
  629. ;    2       End
  630. ;    3       Cls
  631. ;    4       ClrEol
  632. ;    6       Color 
  633. ;    110     Goto 
  634. ;    159     Let 
  635. ;    59      Print 
  636. ;    5       PrintLn 
  637. ;    126     If 
  638. ;    1       DispFile 
  639. ;    1       FCreate 
  640. ;    1       FAppend 
  641. ;    1       FClose 
  642. ;    11      FPutLn 
  643. ;    1       GetUser
  644. ;    1       Delete 
  645. ;    1       AdjTime 
  646. ;    23      Gosub 
  647. ;    10      Return
  648. ;    8       Delay 
  649. ;    15      Inc 
  650. ;    5       Dec 
  651. ;    1       Newline
  652. ;    2       Newlines 
  653. ;    1       Tokenize 
  654. ;    2       Beep
  655. ;    1       KbdStuff 
  656. ;    59      AnsiPos 
  657. ;    2       SaveScrn
  658. ;    2       RestScrn
  659. ;    1       Sound 
  660. ;    1       PageOff
  661. ;    2       EndFunc
  662. ;    2       Eval 
  663. ;
  664. ;
  665. ; ■ Functions used :
  666. ;
  667. ;    3       -
  668. ;    1       *
  669. ;    1       /
  670. ;    115     +
  671. ;    13      -
  672. ;    70      ==
  673. ;    13      <>
  674. ;    13      <
  675. ;    9       <=
  676. ;    12      >
  677. ;    30      >=
  678. ;    63      !
  679. ;    24      &&
  680. ;    11      ||
  681. ;    16      Len(
  682. ;    11      Lower()
  683. ;    7       Mid()
  684. ;    8       Left()
  685. ;    3       Right()
  686. ;    57      Chr()
  687. ;    4       Asc()
  688. ;    1       Date()
  689. ;    3       Time()
  690. ;    3       U_Name()
  691. ;    6       String()
  692. ;    5       PCBDat()
  693. ;    18      PPEPath()
  694. ;    4       PcbNode()
  695. ;    16      ReadLine()
  696. ;    1       GetToken()
  697. ;    5       Exist()
  698. ;    2       GetX()
  699. ;    2       GetY()
  700. ;    3       KInkey()
  701. ;    2       MInkey()
  702. ;    1       TokCount()
  703. ;
  704. ;------------------------------------------------------------------------------
  705. ;
  706. ; Analysis flags : Ad
  707. ;
  708. ; A - Adjust online time remaining ■ 5
  709. ;     Program modify the amount of online time remaining, this may
  710. ;     be a way to bypass time limits
  711. ;     ■ Search for : ADJTIME
  712. ;
  713. ; d - Access PCBOARD.DAT ■ 2
  714. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  715. ;     for many PPE so they can find various informations on the system
  716. ;     (system paths, max number of lines in messages, ...) but it may also
  717. ;     be a way to gather vital informations.
  718. ;     ■ Search for : PCBDAT()
  719. ;
  720. ;------------------------------------------------------------------------------
  721. ;
  722. ; Postprocessing report
  723. ;
  724. ;    9       For/Next
  725. ;    4       While/EndWhile
  726. ;    30      If/Then or If/Then/Else
  727. ;    2       Select Case
  728. ;
  729. ;------------------------------------------------------------------------------
  730. ;                 AEGiS Corp - Break the routines, code against the machines!
  731. ;------------------------------------------------------------------------------
  732.